package p21_参数解析器;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * 控制器
 */
public class Controller {

    public void test(
                @RequestParam("name1") String name1,    //请求参数:name1=xxx
                String name2,       //请求参数name2=xxx
                @RequestParam("age") int age,   //请求参数age=10(类型转换，无法转换成数字会报错)
                @RequestParam(value = "home", defaultValue = "${JAVA_HOME}") String home1,  //从环境中获取值，而不是请求中
                @RequestParam("file") MultipartFile file,   //上传文件
                @PathVariable("id") int id,     //路径参数，类型转换
                @RequestHeader("Content-Type") String header,   //获取请求头参数(Content-Type头)
                @CookieValue("token") String token,     //从cookie获取值
                @Value("${JAVA_HOME}") String home2,    //从环境获取，而不是请求中
                HttpServletRequest request,     //特殊类型参数(请求对象)
                @ModelAttribute("abc") Person person1,  //name=zs&age=22，将参数解析后封装进Person对象
                Person person2,     //name=zs&age=22，将参数解析后封装进Person对象(与上面等价，省略了@ModelAttribute)
                @RequestBody Person person3     //解析json，并封装进Person对象(json类型肯定是放在请求体的)
            ) {

    }

}
